import datetime as dt

# 数据获取的起始日期
START_KDATA_DATE = dt.date(2020, 1, 2)
START_KDATA_DATE_WEEK = dt.date(2010, 1, 2)#15年大概15*52=780周，小于目前tushare接口的1000条数据限制
START_KDATA_DATE_MONTH = dt.date(2000, 1, 2)
PLATE_REFRESH_DAYS_INTERVAL = 20
SECONDS_IN_MINUTE = 61  # 60s + 1s多等一会 # 60s + 5s多等一会
BLOCK_KPL_DATE_START = dt.date(2024, 11, 1)#开盘啦的数据从2024年11月1日开始
TS_STOCK_HOLDER_RPT_MD_LIST = ['0331', '0630', '0930', '1231']  # 股东人数报告日期

# 数据类型定义
DATA_TYPES = {
    'STOCK_BASIC': 'stock_basic',  # 股票基本信息
    'TRADE_CAL': 'trade_cal',      # 交易日历
    'DAILY': 'daily',              # 日线行情
    'DAILY_BASIC': 'daily_basic',  # 每日指标
    'INDEX_DAILY': 'index_daily',  # 指数日线行情
    'INDEX_WEEKLY': 'index_weekly',  # 指数周线行情
    'INDEX_MONTHLY': 'index_monthly',  # 指数月线行情
    'STOCK_ST': 'stock_st',   # ST股票列表
    'IPO_NEW': 'ipo_new'  , # IPO新股列表
    'STOCK_WEEKLY': 'stock_weekly',   # 股票周线行情
    'STOCK_MONTHLY': 'stock_monthly',   # 股票月线行情
    'HSGT_TOP20': 'hsgt_top20',   # 沪深港通交易前20
    'ALL_DATA_1': 'all_data_1',        # 全部api接口1数据
    'STOCK_CHIP_DIST': 'stock_chip_dist',  # 股票筹码分布
    'MARKET_STOCK_RZRQ': 'market_stock_rzrq',  # 股票融资融券
    'STOCK_MONEYFLOW': 'stock_moneyflow',  # tushare自己统计的股票资金流向
    'STOCK_MONEYFLOW_THS': 'stock_moneyflow_ths',  # 同花顺股票资金流向，从2024年12月24日开始
    'BLOCK_MONEYFLOW_THS': 'block_moneyflow_ths',  # 同花顺概念板块资金流向
    'MARKET_MONEYFLOW_DC': 'market_moneyflow_dc',  # 东方财富市场资金流向
    'ALL_DATA_2': 'all_data_2',        # 全部api接口2数据
    'THS_PLATE': 'ths_plate',        # 同花顺板块（包括行业和概念）
    'THS_STOCK_PLATE': 'ths_stock_plate',  # 股票所属板块关系（包括行业和概念）
    'THS_PLATE_QUOTE': 'ths_plate_quote',  # 同花顺板块指数行情
    'LIMIT_LIST': 'limit_list',    # 涨跌停列表
    'BLOCK_KPL_ZT_DAILY': 'block_kpl_zt_daily',  # 板块涨停日线行情开盘拉题材每日涨停信息
    'BLOCK_KPL_STOCK': 'block_kpl_stock',  # 开盘拉题材个股成分
    'BLOCK_KPL_LIST': 'block_kpl_list',  # 开盘拉题材榜单数据
    'MARKET_LHB_LIST': 'market_lhb_list',  # 龙虎榜每日统计单
    'MARKET_LHB_DETAIL': 'market_lhb_detail',  # 龙虎榜机构交易明细
    'MARKET_HM_DETAIL': 'market_hm_detail',  # 龙虎榜营业部交易明细市场游资信息,市场游资每日交易明细
    'MARKET_HOT_LIST': 'market_hot_list',  # 热门股票列表,包括了同花顺和东方财富
    'ALL_DATA_3': 'all_data_3',        # 全部api接口3数据
    'STOCK_HOLDER_TOP10': 'stock_holder_top10',  # 个股前十大及流通十大股东
    'MARKET_BIG_TRADE': 'market_big_trade',  # 大单交易
    'MARKET_FUND_E': 'market_fund_e',  # 场内基金持股
    'ALL_DATA_4': 'all_data_4',        # 全部api接口4数据
    'ALL_DATA': 'all_data',
    # 可以根据需要添加更多数据类型
}

# 主要指数列表
MAIN_INDEXES = [
    {
        'ts_code': '000001.SH',
        'name': '上证指数',
        'market': 'SSE',
        'publisher': '上海证券交易所',
        'category': '综合指数',
        'base_date': '19901219',
        'base_point': 100.0,
        'list_date': '19910715'
    },
    {
        'ts_code': '399001.SZ',
        'name': '深证成指',
        'market': 'SZSE',
        'publisher': '深圳证券交易所',
        'category': '综合指数',
        'base_date': '19940704',
        'base_point': 1000.0,
        'list_date': '19950103'
    },
    {
        'ts_code': '399006.SZ',
        'name': '创业板指',
        'market': 'SZSE',
        'publisher': '深圳证券交易所',
        'category': '综合指数',
        'base_date': '20100531',
        'base_point': 1000.0,
        'list_date': '20100601'
    },
    {
        'ts_code': '000300.SH',
        'name': '沪深300',
        'market': 'SSE',
        'publisher': '中证指数有限公司',
        'category': '综合指数',
        'base_date': '20041231',
        'base_point': 1000.0,
        'list_date': '20050408'
    },
    {
        'ts_code': '000688.SH',
        'name': '科创50',
        'market': 'SSE',
        'publisher': '中证指数有限公司',
        'category': '综合指数',
        'base_date': '20191231',
        'base_point': 1000.0,
        'list_date': '20200723'
    },
    {
        'ts_code': '000016.SH',
        'name': '上证50',
        'market': 'SSE',
        'publisher': '中证指数有限公司',
        'category': '综合指数',
        'base_date': '20031231',
        'base_point': 1000.0,
        'list_date': '20040102'
    }
]

# Tushare API 限制
# 根据Tushare的要求，设置不同的访问限制
TUSHARE_API_LIMIT = {
    'daily_k_max_count': 6000,  # 单次最多获取的数据条数
    'daily_k_max_num': 600,     # 获取k线数据时，每次最多获取的个股数量
    'min_seconds': 1,           # 两次API调用之间的最小间隔（秒）
    'ths_member_max_in_minute': 500,   # ths_member接口每分钟最多API调用次数
    'ths_plate_quote_max_count': 3000,  # ths_plate_quote接口单次最多获取的数据条数
    'ths_plate_quote_max_num': 100,     # ths_plate_quote接口每次最多获取的板块数量
    'limit_list_d_max_num':2500,    #接口每次最多获取的数据条数
    'limit_list_d_max_in_minute': 200,#接口每分钟访问最多200次。
    'st_list_max_in_minute': 200,    #接口每分钟访问最多200次。
    'weekly_k_max_count': 4000,  # 单次最多获取的数据条数
    'weekly_k_max_num': 400,     # 获取k线数据时，每次最多获取的个股数量
    'monthly_k_max_count': 4000,  # 单次最多获取的数据条数
    'monthly_k_max_num': 400,     # 获取k线数据时，每次最多获取的个股数量
    'hsgt_top20_max_in_minute': 500,    #接口每分钟访问最多500次。
    'stock_moneyflow_ths_max_in_minute': 500,    #接口每分钟访问最多500次。
    'market_lhb_top_list_max_in_minute': 500,    #接口每分钟访问最多500次。
}